<?

/*
*
*   Excalibur Content Management System
*   Copyright © 2008 Egor "Sontan" Kuryanovich
*
*   Based on Explay Engine v2.0 by Golovdinov Alexander
*
*   Official site: www.excms.ru
*   Contact e-mail: support@excms.ru
*
*   GNU General Public License original source:
*   http://www.gnu.org/licenses/gpl-3.0.html
*
*/

if ($EXCMS != "work") {
	exit;
}

$numberusers = 40;

if (isset($_GET['id'])) $id = $_GET['id'];
if (isset($_GET['page']) && $_GET['page'] != "0") $start = (intval ($_GET['page']) - 1) * $numberusers;
else $start = 0;

(isset($_GET['page'])) ? $page = $_GET['page'] : $page = 1;
if (isset($_GET['order'])) $order_by = $_GET['order'];
else $order_by = "user_id";

if ($_GET['delete'] == "true" && isset($_GET['uid'])) {
	$delete = @mysql_query ("DELETE FROM ".DB_PEREFIX."_users WHERE user_id = '".$_GET['uid']."'");
	
	if ($delete) site_message ("Пользователь удален");
	else site_error ("Ошибка при удалении пользователя");
}
if (($_GET['set'] == "admin" || $_GET['set'] == "user") && isset($_GET['uid'])) {
	($_GET['set'] == "admin") ? $group = "1" : $group = "3";
	
	$update_user = @mysql_query ("UPDATE ".DB_PEREFIX."_users SET user_group = '".$_GET['set']."' WHERE user_id = '".$_GET['uid']."'");
	
	if ($update_user) site_message ("Профиль пользователя сохранен");
	else site_error ("Ошибка при изменении пользователя");
}

if (isset($_GET['set_moderator']) && isset($_GET['uid'])) {
	$set = mysql_query ("UPDATE ".DB_PEREFIX."_users SET moderator = '".$_GET['set_moderator']."' WHERE user_id = ".$_GET['uid']."");
	
	if ($set) site_message ("Пользователь сделан модератором");
	else site_error ("Ошибка при изменении пользователя");
}


//-----------------------------------
if ($_GET['mod'] == "ban" && isset ($_GET['uid'])) {
	$ban = @mysql_query ("UPDATE ".DB_PEREFIX."_users SET user_ban = 'on' WHERE user_id = '".$_GET['uid']."'");
	if ($ban) site_message ("Пользователю запрещен доступ к сайту");
	else site_error ("Ошибка БД или нет такой записи");
}
if ($_GET['mod'] == "upset" && isset ($_GET['uid'])) {
	$ban = @mysql_query ("UPDATE ".DB_PEREFIX."_users SET user_ban = 'off' WHERE user_id = '".$_GET['uid']."'");
	if ($ban) site_message ("Пользователю разрешен доступ к сайту");
	else site_error ("Ошибка БД или нет такой записи");
}
//-------------------------------------

if ($_GET['mod'] == "save") {
	if ($_POST['new'] == "true") {
		$login = $_POST['login'];
		$pass = $_POST['pass'];
	}
	
	$the_login = $_POST['the_login'];
	$name = $_POST['name'];
	$email = $_POST['email'];
	if ($_POST['vemail'] == "true") $vemail = "open";
	else $vemail = "hide";
	$icq = $_POST['icq'];
	$http = $_POST['http'];
	$work = $_POST['work'];
	$desc = $_POST['desc'];
	$group = $_POST['group'];
	$the_id = $_POST['the_id'];
	
	($group == "admin") ? $f_group = "1" : $f_group = "3";
	
	$error = "";
	if ($_POST['new'] == "true") {
		$check_log = @mysql_num_rows (mysql_query ("SELECT * FROM ".DB_PEREFIX."_users WHERE user_login = '$login'"));
		$check_email = @mysql_num_rows (mysql_query ("SELECT user_email FROM ".DB_PEREFIX."_users WHERE user_email = '$email'"));
		
		if ($check_log > 0) $error .= "<li>Пользователь с таким логином уже существует!";
		if ($check_email > 0) $error .= "<li>Пользователь с таким e-mail уже существует!";
	}
	else {
		$check_email = @mysql_num_rows (mysql_query ("SELECT user_email FROM ".DB_PEREFIX."_users WHERE user_email = '$email' AND user_id != '$the_id'"));
		if ($check_email > 0) $error .= "<li>Пользователь с таким e-mail уже существует!";
	}
	if ($name == "") $error .= "<li>Имя не может быть пустым!";
	if (!eregi("^[a-z0-9\._-]+@[a-z0-9\._-]+\.[a-z]{2,4}\$",$email)) $error .= "<li>E-mail имеет неверный формат!";
	
	if ($error == "") {
		if ($_POST['new'] == "true") {
			$add_user = @mysql_query ("INSERT INTO ".DB_PEREFIX."_users VALUES (0, '$login', '".expl_hash($pass)."', '$name', '$group', '$email', '$vemail', '$icq', '$http', '$work', '$desc', '".time()."', '', 'off', '', '0,0', '', 'off')");
			$add_forum = @mysql_query ("INSERT INTO ".FORUM_PREFIX."users (username, group_id, password, email, email_setting, save_pass, timezone, language, style, registered, registration_ip, last_visit) VALUES ('$login', '$f_group', '".expl_hash($npass)."', '$email', '1', '1', '0', 'Russian', 'Oxygen', '".time()."', '".$_SERVER['REMOTE_ADDR']."', '".time()."')");
			
			if ($add_user) site_message ("Новый пользователь был успешно добавлен");
			else site_error ("Ошибка при добавлении нового пользователя");
		}
		else {
			$update = @mysql_query ("UPDATE ".DB_PEREFIX."_users SET
				user_name = '$name',
				user_email = '$email',
				user_e_open = '$vemail',
				user_icq = '$icq',
				user_http = '$http',
				user_school = '$work',
				user_group = '$group',
				user_description = '$desc' WHERE user_id = '$the_id'");
				
			$update_forum = @mysql_query ("UPDATE ".FORUM_PREFIX."users SET group = '$f_group', email = '$email' WHERE login = '$the_login'");
		
			if ($update && $update_forum) site_message ("Профиль пользователя обновлен");
			else site_error ("Ошибка при обновлении профилья пользователя");
		}
	}
	else site_error ($error);
}

if (!isset($_GET['id']) && !isset($_GET['act'])) {
	print '<ul id="top_nav"><li class="sel"><a href="admin.php">Панель администратора</a></li><li>Управление пользователями</li></ul>';
	simple_table ("[ <a href='admin.php?name=users&act=add'>Добавить нового пользователя</a> ] [ <a href='admin.php?name=users&act=fields'>Управление полями</a> ]");
	$get_users = @mysql_query ("SELECT * FROM ".DB_PEREFIX."_users ORDER BY $order_by LIMIT $start, $numberusers");
	$count = @mysql_num_rows (@mysql_query ("SELECT * FROM ".DB_PEREFIX."_users"));
	if ($get_users) {
		$user_tr = "";
		while ($user = mysql_fetch_array($get_users)) {
			if ($user['user_group'] == "user") $group = "<a title='Сделать администратором' href='admin.php?name=users&page=$page&order=$order_by&set=admin&uid=".$user['user_id']."'>Пользователь</a>";
			if ($user['user_group'] == "admin") $group = "<a title='Сделать пользователем' href='admin.php?name=users&page=$page&order=$order_by&set=user&uid=".$user['user_id']."'>Администратор</a>";
			$email = $user['user_email'];
			if ($user['user_icq'] != "") $icq = $user['user_icq'];
			if ($user['user_icq'] == "") $icq = "&nbsp;";
			if ($user['user_ban'] == "off") { $color_tr = ""; $name = $user['user_name']; $ban = "<a href='admin.php?name=users&mod=ban&uid=".$user['user_id']."' title='Запретить пользователю доступ к сайту'>Ban!</a>"; }
			if ($user['user_ban'] == "on") { $color_tr = _DARK_TR_; $name = "<font color=red>".$user['user_name']."</font>"; $ban = "<a href='admin.php?name=users&mod=upset&uid=".$user['user_id']."' title='Разрешить пользователю доступ к сайту'><font color=red>upset</font></a>"; }
			
			($user['moderator'] == 1) ? $moderator = "<a href=\"admin.php?name=users&set_moderator=0&page=$page&uid={$user['user_id']}\">снять</a>" : $moderator = "<a href=\"admin.php?name=users&page=$page&set_moderator=1&uid={$user['user_id']}\">назначить</a>";
			if ($user['user_group'] == "admin") $moderator = "&mdash;";
			
			$user_tr .= "\n<tr bgcolor=\"$color_tr\"><td class=\"ad_tr\">".user_status($user['user_id'])."<a target=\"_blank\" href='/users/".$user['user_id'].".html'>$name</a></td>".
			"<td class=\"ad_tr\">$email</td>".
			"<td class=\"ad_tr\" align=\"center\">$group</td>".
			"<td class=\"ad_tr\" align=\"center\">$moderator</td>".
			"<td class=\"ad_tr\" align=\"center\">$ban <!--<a href=\"admin.php?name=users&act=edit&id=".$user['user_id']."\"><img src='images/edit.gif' title=\"Редактировать\" align=\"absmiddle\"></a>--> ".
			"<a href=\"javascript:delete_('admin.php?name=users&page=$page&delete=true&uid=".$user['user_id']."');\"><img src=\"images/cut.gif\" title=\"Удалить\" align=\"absmiddle\"></a></td></tr>";
		}
		$user_table = "\n<table class=\"body_table\" width=\"100%\" cellspacing=\"0\" cellpadding=\"2\">
		<tr><td class=\"top_header_name\" align=\"center\"><a href='admin.php?name=users&start=$start&order=user_name'>Имя</a></td>".
		"\n<td class=\"top_header_name\" align=\"center\">E-mail</td>".
		"\n<td class=\"top_header_name\" align=\"center\"><a href='admin.php?name=users&start=$start&order=user_group'>Группа</a></td>".
		"\n<td class=\"top_header_name\" align=\"center\">Модератор</td>".
		"\n<td class=\"top_header_name\" align=\"center\">Опции</td></tr>$user_tr
		\n</table><br><script>function delete_ (url_) {
		if (window.confirm('Вы действительно хотите удалить пользователя?') == true) document.location.href = url_;
		}</script>";
		past_table ("Пользователи", $user_table);
		if ($count > $numberusers) simple_table (past_pages($start, $numberusers, $count, "admin.php?name=users&order={$order_by}&", 'page', '', true));
	}
	else site_error ("Ошибка БД");
}
if ($_GET['act'] == "view" && isset($_GET['id'])) {
	print '<ul id="top_nav"><li class="sel"><a href="admin.php">Панель администратора</a></li><li><a href="admin.php?name=users">Управление пользователями</a></li><li>Просмотр профиля пользователя</li></ul>';
	simple_table ("[ <a href='admin.php?name=users&act=add'>Добавить нового пользователя</a> ] [ <a href='admin.php?name=users&act=fields'>Управление полями</a> ]");
	$get_user = @mysql_query ("SELECT * FROM ".DB_PEREFIX."_users WHERE user_id = '$id'");
	if (mysql_num_rows($get_user) == 1) {
		$user = mysql_fetch_array($get_user);
		print "\n<script>document.title='Просмотр профиля - ".$user['user_name']." - ".$SITE['site_name']."';</script>";
		$email = $user['user_email'];
		if ($user['user_group'] == "user") $group = "Пользователь";
		if ($user['user_group'] == "admin") $group = "Администратор";
		if ($user['user_avatar'] == "") $avatar = 'images/avatars/noavatar.gif';
		if ($user['user_avatar'] != "") $avatar = "images/avatars/".$user['user_avatar'];
		if ($GLOBAL_USER['user_id'] == $user['user_id']) $opt = "\n<tr><td colspan=2 align=center><br>[ <a href='modules.php?name=edit_profile'>изменить профиль</a> ]</td></tr>";
		else $opt = "";
		if ($user['user_ban'] == "off") $name = $user['user_name'];
		if ($user['user_ban'] == "on") $name = "<font color=red>".$user['user_name']." (пользователю запрещен доступ на сайт)</font>";
		$com_ = @mysql_query("SELECT com_id FROM ".DB_PEREFIX."_comments WHERE com_uid = '$id'");
		$comments = @mysql_num_rows ($com_);
		//$mes = @mysql_query ("SELECT mes_id FROM ".DB_PEREFIX."_messages WHERE mes_author = '$id'");
		$messages = @mysql_num_rows ($mes);
		past_table ("Просмотрт профиля - ".$user['user_name'], "
			<table class=main_text cellspacing=0 cellpadding=2 border=0>
			<tr><td align=right>Аватар:</td><td><b><img src='$avatar' border=0 alt='".$user['user_name']."'></b></td></tr>
			<tr><td align=right>Имя:</td><td><b>$name</b></td></tr>
			<tr><td align=right>Статус:</td><td><b>".user_status($user['user_id'])."</b></td></tr>
			<tr><td align=right>Группа:</td><td><b>$group</b></td></tr>
			<tr><td align=right>E-mail:</td><td><b>$email</b></td></tr>
			<tr><td align=right>ICQ:</td><td><b>".$user['user_icq']."</b></td></tr>
			<tr><td align=right>Домашняя страничка:</td><td><b>".$user['user_http']."</b></td></tr>
			<tr><td align=right>Место учебы (класс или работа):</td><td><b>".$user['user_school']."</b></td></tr>
			<tr><td align=right>Дата:</td><td><b>".format_time($user['user_date'])."</b></td></tr>
			<tr><td align=right>Немного о себе:</td><td><b>".$user['user_description']."</b><br></tr>
			<tr><td align=right><br>Комментариев</td><td><b><br>$comments</b><br></tr>
			</table>");
	}
	else site_error ("Нет такого пользователя");
	come_back ("управлению пользователями", "admin.php?name=users");
}
if ($_GET['act'] == "add") {
	print '<ul id="top_nav"><li class="sel"><a href="admin.php">Панель администратора</a></li><li><a href="admin.php?name=users">Управление пользователями</a></li><li>Добавление нового пользователя</li></ul>';
	simple_table ("[ <a href='admin.php?name=users&act=fields'>Управление полями</a> ]");
	add_user ("new", "name=users&act=add&mod=save", "", $_POST['name'], $_POST['email'], $_POST['icq'], $_POST['http'], $_POST['work'], $_POST['desc'], "", "yes", "");
	come_back ("управлению пользователями", "admin.php?name=users");
}

elseif ($_GET['act'] == "fields") {
	
	print '<ul id="top_nav"><li class="sel"><a href="admin.php">Панель администратора</a></li><li><a href="admin.php?name=users">Управление пользователями</a></li><li>Управление полями</li></ul>';
	simple_table ("[ <a href='admin.php?name=users&act=add'>Добавить нового пользователя</a> ]");	
	include "modules/auth/admin/fields.php";
	come_back ("управлению пользователями", "admin.php?name=users");
	
}

elseif ($_GET['act'] == "edit" && isset($_GET['id'])) {
	print '<ul id="top_nav"><li class="sel"><a href="admin.php">Панель администратора</a></li><li><a href="admin.php?name=users">Управление пользователями</a></li><li>Измененние профиля пользователя</li></ul>';
	simple_table ("[ <a href='admin.php?name=users&act=add'>Добавить нового пользователя</a> ] [ <a href='admin.php?name=users&act=fields'>Управление полями</a> ]");
	$get_user = @mysql_query ("SELECT * FROM ".DB_PEREFIX."_users WHERE user_id = '$id'");
	if (@mysql_num_rows ($get_user) == 1) {
		$user = mysql_fetch_array ($get_user);
		if ($user['user_e_open'] == "open") $vemail = "yes";
		else $vemail = "";
		add_user ("", "name=users&mod=save", $id, $user['user_name'], $user['user_email'], $user['user_icq'], $user['user_http'], $user['user_school'], $user['user_description'], $user['user_group'], $vemail, $user['user_login']);
		come_back ("управлению пользователями", "admin.php?name=users");
	}
	else site_error ("Нет такого пользователя");
}

come_back ("панели администратора", "admin.php");

function add_user ($mod, $act, $id, $name, $email, $icq, $http, $work, $desc, $group, $vemail, $login) {
	if ($vemail == "yes") $checked = "checked";
	if ($group == "admin") $selected = "selected";
	$form = "\n\n<form action=\"admin.php?$act\" method=\"post\" name=\"record\">
<input type=\"hidden\" name=\"the_id\" value=\"$id\" />
<input type=\"hidden\" name=\"the_login\" value=\"$login\" />
<table class=\"main_text\" width=\"100%\" cellspacing=\"0\" cellpadding=\"2\">";
	if ($mod == "new") {
		$form .= "\n<input type=\"hidden\" name=\"new\" value=\"true\" />
	<tr>
		<td width=\"25%\">Логин:</td>
		<td><input type=\"text\" name=\"login\" style=\"width:40%\" class=\"form\" value=\"\"></td>
	</tr>
	<tr>
		<td>Пароль:<br /></td>
		<td><input type=\"text\" name=\"pass\" style=\"width:40%\" class=\"form\" value=\"\"><br /></td>
	</tr>";
	}
	$form .= "\n<tr>
		<td width=\"25%\">Имя:</td>
		<td><input type=\"text\" name=\"name\" style=\"width:40%\" class=\"form\" value=\"$name\"></td>
	</tr>
	<tr>
		<td>E-mail:</td>
		<td><input type=\"text\" name=\"email\" style=\"width:40%\" class=\"form\" value=\"$email\"></td>
	</tr>
	<tr>
		<td>Показывать e-mail:</td>
		<td><input type=\"checkbox\" name=\"vemail\" value=\"true\" $checked></td>
	</tr>
	<tr>
		<td>ICQ:</td>
		<td><input type=\"text\" name=\"icq\" style=\"width:40%\" class=\"form\" value=\"$icq\"></td>
	</tr>
	<tr>
		<td>Сайт:</td>
		<td><input type=\"text\" name=\"http\" style=\"width:40%\" class=\"form\" value=\"$http\"></td>
	</tr>
	<tr>
		<td>Место работы (учебы):</td>
		<td><input type=\"text\" name=\"work\" style=\"width:40%\" class=\"form\" value=\"$work\"></td>
	</tr>
	<tr>
		<td>Группа:</td>
		<td><select name=\"group\"><option value=\"user\">Пользователь</option><option value=\"admin\" $selected>Администратор</option></select></td>
	</tr>
	<tr>
		<td valign=\"top\">Пару слов о себе:</td>
		<td><textarea class=\"form\" name=\"desc\" style=\"width:60%\" rows=\"8\">$desc</textarea></td>
	</tr>
	<tr>
		<td colspan=\"2\"><br /><span class=\"important_button\"><input style=\"width:240px\" type=\"submit\" name=\"post\" value=\"Сохранить\" class=\"button\" /></span></td>
	</tr>
	</table></form>";
	past_table ("Добавление/Изменение пользователя", $form);
}

?>
